//初始化个人信息列表

layui.use(['layer', 'datatable', 'datatableButton', 'datatableFlash', 'datatableHtml5', 'datatablePrint', 'datatableColVis', 'datatableSelect'], function() {
	var $ = layui.jquery,
		layer = layui.layer;
	// oSort是排序类型数组, 'chinese-asc'是自己定义的类型的排序(*-asc || *-desc)名称
	// 插件应该会根据表格中的内容的类型(string, number, chinese)进行比较排序，
	// 如果以chinese类型来排序则用oSort['chinese-asc']和oSort['chinese-desc']的方法
	// oSort对应的function里面自定义比较方法
	$.fn.dataTableExt.oSort['chinese-asc'] = function(x, y) {
		//javascript自带的中文比较函数，具体用法可自行查阅了解
		return x.localeCompare(y);
	};

	$.fn.dataTableExt.oSort['chinese-desc'] = function(x, y) {
		return y.localeCompare(x);
	};
	// aTypes是插件存放表格内容类型的数组
	// reg赋值的正则表达式，用来判断是否是中文字符
	// 返回值push到aTypes数组，排序时扫描该数组，'chinese'则调用上面两个方法。返回null默认是'string'
	$.fn.dataTableExt.aTypes.push(
		function(sData) {
			var reg = /^[\u4e00-\u9fa5]{0,}$/;
			if(reg.test(sData)) {
				return 'chinese';
			}
			return null;
		}
	);
	$(document).ready(function() {
		var myTable = $('#personal').DataTable({
			"processing": false, //DataTables载入数据时，是否显示‘进度’提示  
			"stateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态  
			"scrollCollapse": true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变  
			"paginationType": "full_numbers", //详细分页组，可以支持直接跳转到某页  
			"language": lang, //提示信息
			"autoWidth": false, //自适应宽度，
			"lengthMenu": [15, 30, 50],
			"stripeClasses": ["odd", "even"], //为奇偶行加上样式，兼容不支持CSS伪类的场合
			"searching": false, //是否允许Datatables开启本地搜索
			"paging": false, //是否开启本地分页
			"lengthChange": true, //是否允许产品改变表格每页显示的记录数
			"info": true, //控制是否显示表格左下角的信息
			//跟数组下标一样，第一列从0开始，这里表格初始化时，第四列默认降序
			"order": [1, 'desc'], //asc升序   desc降序 
			"aoColumnDefs": [{
				"orderable": false,
				"aTargets": [0, 6] // 指定列不参与排序
			}],
			"deferRender": true, //延迟渲染
			//"ajax":"json/device.json",
			"ajax": {
				url: url + '/ic-iot/users/' + userId + '/detail',
				type: 'get',
				data: {
					"currentPage": 1,
					"pageSize": 999,
				},
				dataType: 'json',
				beforeSend: function(request) {
					request.setRequestHeader("accessToken", accessToken);
				},
				success: function(data) {
					//console.log(data);
					$("#userName").html(data.result.userName);
					$("#companyName").html(data.result.companyName);
					$("#userEmail").html(data.result.userEmail);
					$("#userPhone").html(data.result.userPhone);
					//console.log(data['result']);
					if(data['code'] == 1) {
						if(data.result.list.length != 0)
							$('#personal').dataTable().fnAddData(data.result.list);
						else
							$('#personal').dataTable().fnClearTable();
					} else {
						ifajax(data);
					}
				}
			}, //数据的路径 "http://192.168.5.133:8081/ic-iot/admin/'+adminId+'/devices" /"json/device.json"
			select: { //单击tr选中当前行
				style: 'multi'
			},
			"columns": [{ //定义列
					"data": function(obj) {
						//debugger;
						return '<input type="checkbox" class="fly-checkbox" name="sublist" id=' + obj.deviceId + '>';
					},
					"sTitle": "<input type='checkbox' class='btn-checkall fly-checkbox'>", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": "deviceName",
					"sTitle": "设备名称", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": "deviceModel",
					"sTitle": "型号", //标题
					"sType": 'chinese',
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": function(obj) {
						if(obj.deviceType == 0) {
							return '<u class="btn-showuser">GPRS</u>';
						}
						if(obj.deviceType == 1) {
							return '<u class="btn-showuser">WIFI</u>';
						}
					},
					"sTitle": "类型", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": function(obj) {
						if(obj.deviceState == 0) {
							return '<u class="btn-showuser">正常</u>';
						}
						if(obj.deviceState == 1) {
							return '<u class="btn-showuser">超限</u>';
						}
						if(obj.deviceState == 2) {
							return '<u class="btn-showuser">异常</u>';
						}
						if(obj.deviceState == 3) {
							return '<u class="btn-showuser">离线</u>';
						}
					},
					"sTitle": "状态", //标题
					"sType": 'chinese',
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": "monitorPosition",
					"sTitle": "监测点", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}, {
					"data": function(obj) {
						return replaceTime(obj.createTime / 1000);
					},
					"sTitle": "添加时间", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				},
				/* {
				        "data": "email",
				        "sTitle": "邮箱", //标题
				        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				      }, {
				        "data": "address",
				        "sTitle": "地址", //标题
				        "sType": 'chinese',
				        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				      }, {
				        "data": function(obj) {
				          return replaceTime(obj.joinTime / 1000);
				        },
				        "sTitle": "加入时间", //标题
				        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				      }, {
				        "data": function(obj) {
				          if(obj.status) {
				            return '<span class="label label-success radius">已启用</span>';
				          } else {
				            return '<span class="label label-default radius">已停用</span>';
				          }
				        },
				        "className": "td-status",
				        "sTitle": "状态", //标题
				        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				      },*/
				{
					"data": function(obj) {
						return '<span title="查看" data=' + obj.deviceId + ' class="handle-btn handle-btn-edit"><i style="font-size:20px; color:#5ebdc7;" class="layui-icon">&#xe60a;</i></span><span title="编辑" data=' + obj.deviceId + ' class="handle-btn handle-btn-updatepwd"><i style="color:#5ebdc7;" class="linyer icon-edit"></i></span><span title="设置" data=' + obj.deviceId + ' class="handle-btn handle-btn-Set"><i style="color:#5ebdc7;" class="layui-icon">&#xe620;</i></span><span title="删除" data=' + obj.deviceId + ' class="handle-btn handle-btn-delect"><i style="color:#5ebdc7;" class="linyer icon-delect"></i></span>';

						//<span title="启用" class="handle-btn handle-btn-run"><i class="linyer icon-qiyong"></i></span>
					},
					"className": "td-handle",
					"sTitle": "操作", //标题
					"sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
				}
			]
		});
		/**
		 * 添加falsh
		 */
		$.fn.dataTable.Buttons.swfPath = "js/dataTables/extensions/Buttons/swf/flashExport.swf";
		$.fn.dataTable.Buttons.defaults.dom.container.className = 'tableTools-box';
		/**
		 * 操作栏
		 */

		//console.log(myTable);
		myTable.buttons().container().appendTo($('.tableTools'));
		/**
		 * 显示隐藏列
		 */
		var defaultColvisAction = myTable.button(0).action();
		myTable.button(0).action(function(e, dt, button, config) {
			defaultColvisAction(e, dt, button, config);
			if($('.dt-button-collection > .dropdown-menu').length == 0) {
				$('.dt-button-collection')
					.wrapInner('<ul class="dropdown-menu" />')
					.find('a').attr('href', 'javascript:;').wrap("<li />")
			}
			$('.dt-button-collection').appendTo('.tableTools-box')
		});
		/**
		 * 复制到剪贴板
		 */
		var defaultCopyAction = myTable.button(1).action();
		myTable.button(1).action(function(e, dt, button, config) {
			defaultCopyAction(e, dt, button, config);
		});
		/**
		 * 选择
		 */
		myTable.on('select', function(e, dt, type, index) {
			if(type === 'row') {
				$(myTable.row(index).node()).find('input:checkbox').prop('checked', true);
			}
		});
		/**
		 * 取消选择
		 */
		myTable.on('deselect', function(e, dt, type, index) {
			if(type === 'row') {
				$(myTable.row(index).node()).find('input:checkbox').prop('checked', false);
			}
		});
		/**
		 * 根据表头复选框 选择/取消选择所有行
		 */
		$(document).on('click', '#personal > thead > tr > th input[type=checkbox],#personal > tfoot > tr > th input[type=checkbox]', function() {
			var th_checked = this.checked;
			$('#personal').find('tbody > tr').each(function() {
				var row = this;
				if(th_checked) myTable.row(row).select();
				else myTable.row(row).deselect();
			});
		});
		/**
		 * 选中/取消选中复选框时 选中/取消选中一行
		 */
		$(document).on('click', '#personal tbody td input[type=checkbox]', function() {
			var row = $(this).closest('tr').get(0);
			if(!this.checked) myTable.row(row).deselect();
			else myTable.row(row).select();
		});
		$(document).on('click', '#personal tbody td', function() {
			var row = $(this).closest('tr').get(0);
		})
	});

	/*上方添加监控设备*/
	$("#btn-adduser").on('click', function() {
		layer_show('监控设备', 'monitoring_list.html?userId=' + userId, '', '800', '400');
	});

	/*点击新增tab页面*/
	/*$("#btn-adduser").on('click', function() {
    var username = $(this).html();
    var href = 'monitoring_details.html';
    var i = '<i class="fa fa-gear" aria-hidden="true"></i>';
    parent.tab.tabAdd({
				href: href, //地址
				icon: i,
				title: username,
			});
  });
  /*用户设备查看*/
	$('.table-sort').on('click', '.handle-btn-edit', function() {
		var deviceId = $(this).attr("data");
		var username = "查看设备";
		var href = 'device_detail_tabs.html?deviceId=' + deviceId;
		var index = layer.open({
			type: 2,
			title: username,
			fixed: true,
			maxmin: true,
			area: ['100%', '100%'],
			content: href,
		});
		layer.full(index);
	});
	
	/*设备编辑*/
	$('.table-sort').on('click', '.handle-btn-updatepwd', function() {
		var deviceId = $(this).attr("data");
		layer_show('编辑', 'facilityCompile.html?deviceId=' + deviceId, '', '700', '500');
	});
	/*设备设置*/
	$('.table-sort').on('click', '.handle-btn-Set', function() {
		var deviceId = $(this).attr("data");
		layer_show('设置', 'facilitySet.html?deviceId=' + deviceId, '', '700', '500');
	});
	/*设备删除*/
	$('.table-sort').on('click', '.handle-btn-delect', function() {
		var thiss = $(this);
		var obj = $(this).attr("data");
		var deviceId = obj;
		//console.log(obj);
		layer.confirm('确认要删除吗？', {
			icon: 0,
			title: '警告',
			shade: false
		}, function(index) {
			$.ajax({
				url: url + '/ic-iot/users/' + userId + '/devices/' + deviceId,
				type: 'delete',
				dataType: 'json',
				beforeSend: function(request) {
					request.setRequestHeader("accessToken", accessToken);
				},
				success: function(data) {
					if(data['code'] == 1) {
						$(thiss).parents("tr").remove(); //删除方法
						layer.msg('已删除!', {
							icon: 1,
							time: 1000
						});
					} else {
						ifajax(data);
					}
				}
			});

		});
	});

});